package com.th.admin.controller;

import com.th.admin.bean.User;
import lombok.extern.log4j.Log4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.thymeleaf.util.StringUtils;

import javax.servlet.http.HttpSession;

/**
 * @author ThreePure
 * @date 2022/4/18 18:00
 * @description: TODO
 * @since 1.8
 */
@Controller
@Slf4j
public class IndexController {

    //@Autowired
    //StringRedisTemplate stringRedisTemplate;

    /**login页面显示*/
    @GetMapping(value = {"/", "/login"})
    public String loginPage(){
        return "login";
    }

    /**登录请求处理*/
    @PostMapping("/login")
    public String index(User user, HttpSession session, Model model){
        if (!StringUtils.isEmpty(user.getUserName()) && !StringUtils.isEmpty(user.getPassword())){
            session.setAttribute("loginUser", user);
            //登录成功重定向到主页(防止表单重复提交)
            return "redirect:index.html";
        }else {
            model.addAttribute("msg", "用户名或者密码错误");
            return "login";
        }
    }

    /**由于post默认实现转发，所以进入index.html后刷新还会重新提交表单，为了解决这个问题，可以使用重定向*/
    @GetMapping("index.html")
    public String indexPage(HttpSession session, Model model){
        //通过重定向到到这个页面，同样带来一个问题是在未登录的情况下也可以通过页面直接访问到主页，因此要对登录进行判断

        //是否登录判断，拦截器、过滤器
        /*if (session.getAttribute("loginUser") != null){
            return "index";
        }else {
            model.addAttribute("msg", "请重新登录");
            return "login";
        }*/

        /*ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();
        String indexCount = operations.get("/index.html");

        model.addAttribute("indexCount", indexCount);
        log.info("【indexCount】：{}",indexCount);*/
        return "index";
    }

}
